package com.study.spmongodb.wwj.thread3.char01;

/**
 * @author study
 * @version 1.0
 * @date 2020/12/10 10:45
 * https://www.bilibili.com/video/BV1hJ411D7k2?p=82
 */
public class Demo {
    public static void main(String[] args) {
        System.out.println("Classloader 学习");
    }
    /**
     * 结束一个JVM生命周期的方式
     *  1 system.exit
     *  2 异常
     *  3 Crash
     *  4 操作系统问题
     */

    /**
     * 类主动使用
     * - 直接使用
     * - 访问某个类或者接口的静态变量或者对该静态变量进行赋值操作
     * - 调用静态方法
     * - 反射某个类
     * - 初始化一个类，父类也会完成初始化
     * - 启动类
     * -----------
     * 除了上述之外，其他都是被动使用，不会导致类初始化
     */


    /**
     * 1 final 修饰的常量会在编译期间放到常量池中，不会初始化类
     * 2 final 修饰的复杂变量，在编译期无法计算得出，会初始化类
     *  通过子类访问父类的static变量，不会导致子类的初始化
     */
}
